package cz.stv.pecinovsky.správceplátna;


/*******************************************************************************
 * Rozhraní IPřizpůsobivý je určeno pro instance, které chtějí být schopny
 * reagovat na velikosti kroku a tím i políčka aktivního plátna.
 * Kdykoliv se změní velikost pole aktivního plátna, plátno to oznámí
 * všem přihlášeným přizpůsobivým posluchačům.
 *
 * @author  Rudolf PECINOVSKÝ
 * @version 1.10.2678 — 2011-10-27
 */
public interface IPřizpůsobivý
{
//== VEŘEJNÉ KONSTANTY =========================================================
//== PŘÍSTUPOVÉ METODY ATRIBUTŮ INSTANCÍ =======================================
//== OSTATNÍ METODY INSTANCÍ ===================================================

    /***************************************************************************
     * Přihlásí-li se instance u správce plátna
     * jako přizpůsobivý posluchač, zavolá aktivní plátno tuto její metodu
     * po každé změně kroku a tím i velikosti jeho pole.<br>
     * Při přizpůsobování se novému rozměru plátna je třeba změnit velikosti
     * souřadnic i rozměrů objektu v poměru
     * <b><code>((double)nový&nbsp;/&nbsp;starý)</code></b>.
     * Doporučený kód je proto:<pre>{@code
     * public void krokZměněn( int starý, int nový )
     * {
     *    double poměr = (double)nový / starý;
     *    Pozice p = getPozice();
     *    Rozměr r = getRozměr();
     *    int x = (int)(p.x     * poměr);
     *    int y = (int)(p.y     * poměr);
     *    int s = (int)(r.šířka * poměr);
     *    int v = (int)(r.výška * poměr);
     *    setPozice(x, y);
     *    setRozměr(s, v);
     * }}</pre>
     *
     * @param starý     Původní velikost kroku.
     * @param nový      Nově nastavená velikost kroku.
     */
//     @Override
    public void krokZměněn( int starý, int nový );


//== VNOŘENÉ TŘÍDY =============================================================
}
